package com.sinog.biz.mapper.havexml;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sinog.core.domain.AbMvResultVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @desc 户籍迁入迁出mapper
 * @author sunsf
 * @date 2020-02-07-16:37
 */
public interface AbMvMapper extends BaseMapper<AbMvResultVo> {

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 户籍迁入人员管理 - 列表
     * @param page page
     * @param querykey querykey
     * @param departid departid
     * @param level level
     * @param orgid orgid
     * @param sortField 排序字段
     * @param sortOrder 排序方式
     * @param localCode localCode
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getHjqrglList(Page<Map<String,String>> page,
                                           @Param("querykey") String querykey,
                                           @Param("departid") String departid,
                                           @Param("level") int level,@Param("orgid") String orgid,
                                           @Param("sortField") String sortField,
                                           @Param("sortOrder") String sortOrder,
                                           @Param("localCode") String localCode);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 户籍迁出人员管理 - 列表
     * @param page page
     * @param querykey querykey
     * @param departid departid
     * @param level level
     * @param orgid orgid
     * @param sortField 排序字段
     * @param sortOrder 排序方式
     * @param localCode localCode
     * @return List<Map < String,String>>
     */
    List<Map<String,String>> getHjqcglList(Page<Map<String,String>> page,
                                           @Param("querykey") String querykey,
                                           @Param("departid") String departid,
                                           @Param("level") int level,@Param("orgid") String orgid,
                                           @Param("sortField") String sortField,
                                           @Param("sortOrder") String sortOrder,
                                           @Param("localCode") String localCode);

    /**
     * 获取户籍迁出、双列管人员信息
     * @param priNum priNum
     * @return Map<String,String>
     */
    Map<String,String> getBaseInfoByPriNum(@Param("priNum") String priNum);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 户籍迁出人员管理 - 撤回
     * @param id id
     * @param state 审批状态:0:司法所迁出撤回；1:迁出审批中；2:迁出审批成功；3:迁出审批失败；4:司法所迁入撤回；5:迁入审批中；6:迁入审批成功；7:迁入审批失败；
     * @return int
     */
    int updateMvById(@Param("id") String id,@Param("state") String state);

    /**
     * 户籍迁出信息--获取迁移信息
     * @param id id
     * @return Map<String,Object>
     */
    Map<String,Object> getMvInfoById(@Param("id") String id);

    /**
     * 安置帮教管理 - 帮教对象信息管理 - 户籍迁出人员管理 - 迁移办理 - 保存 (跨省需要数据同步)
     * @param pid pid
     * @return Map<String,Object>
     */
    Map<String,Object> getInfoBypId(@Param("pid") String pid);

    /**
     * 户籍迁出--查看
     * @param id id
     * @return Map<String,String>
     */
    Map<String,String> getMvBaseInfoForCheck(@Param("id") String id);

    /**
     * 根据犯罪编号获得数据库实体
     * @param priNum 犯罪编号
     * @return AbMvResultVo
     */
    AbMvResultVo selectOneByPriNum(@Param("priNum") String priNum);
}